package com.example.mqltest.dao;

import com.example.mqltest.Dto.DeleteStudentsDTO;
import com.example.mqltest.Dto.WorkFileDto;
import com.example.mqltest.entity.Course;
import com.example.mqltest.entity.StudentWork;
import com.example.mqltest.entity.Work;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import javax.xml.crypto.Data;
import java.util.Date;
import java.util.List;
@Mapper
public interface CourseDao  {
    List<Course> getCourseByStudent(@Param( "studentId" ) String studentId);

    List<Course> getCourseByTeacher(@Param( "teacherId" )String teacherId);

    void createGroup(@Param( "course" ) Course course);

    //获取所有加课码用于判断是否生成重复的加课码
    List<String> codeList();

    String isJoin(@Param( "studentId" ) String studentId,@Param( "courseCode" ) String courseCode);

    Course getCourseByCode(@Param( "courseCode" )String courseCode);

    void deleteCourse(@Param( "code" ) String code);

    void deleteCheckedStudent(@Param( "deleteStudentsDTO") DeleteStudentsDTO deleteStudentsDTO);

    List<WorkFileDto> getWorkFileByStudent(@Param( "studentId" )String studentId,@Param( "workId" )int workId);

    void studentUpdateWorkStatus(@Param( "studentId" ) String studentId,@Param( "workId" ) int workId, @Param( "status" ) String status,@Param( "date" ) Date date);

    List<StudentWork> getStudentWorkById(@Param( "workId" ) int workId);

//    //通过账户Id获取课程
//    List<Course> getCourse(String account);
//
//    //    通过加课码获取课程
//    List<Course> getCourseByCode(String code);
//
//    //    通过账户Id获取用户的加课码
//    String getAllCode(String account);
//
//    //    通过加课码获取课程
//    Course getCourseCode(String code);
//
//    //    增加课程
//    void addCourse(String courseName, String courseClass, String courseCode, String courseTeacherName, String courseTeacherAccount);
//
//    //    获得所以加课码字符集合
//    List<String> getAllAddCode();
//
//    //    获取课程的所有作业集合
//    List<Work> getWorkList(String code);
//
//    //    增加作业
//    void addWork(String workType, String workName, String optDet, String startTime, String endTime, String code);
//
//    List<Course> getTeacherAccountByCode(String code);
//
//    //删除课程
//    void deleteCourse(String code);
//
//    //获取课程字符集合
//    List<String> codes();
//
//    //提交作业
//    void submitted(String subId);
//
//    //获取提交的账户
//    String getSubmittedAccount(String subId);
//
//    //    更新提交的人
//    void updateSubmittedAccount(String newSubAccount, String subId);
//
//    //更新提交的作业
//    void updateWork(int submitted, String subStudent, int id);
//
//    //删除作业
//    void deleteWork(String code);
//
//    //通过作业Id获取评论集合
//    List<Comment> getComment(int workId);
//
//    //通过Id删除评论
//    void deleteComment(int id);
//
//    //增加评论
//    void addComment(int workId, String name, String date, String content, String account, String headerUrl);
//
//    //更新头像地址
//    void updateCommentHeaderUrl(String headerUrl, String account);
}
